单向散列函数,数字签名,证书

单向散列函数(One-way hash function)

  • 单向散列函数,可以根据根据消息内容计算出散列值

  • 散列值的长度和消息的长度无关,无论消息是1bit、10M、100G,单向散列函数都会计算出固定长度的散列值

  • 特点
  • 根据任意长度的消息,计算出固定长度的散列值
  • 计算速度快,能快速计算出散列值
  • 消息不同,散列值也不同
  • 具备单向性

  • 单向散列函数
  • 单向散列函数,又被称为消息摘要函数(message digest function),哈希函数
    输出的散列值,也被称为消息摘要(message digest)、指纹(fingerprint)

  • 常见的几种单向散列函数
    MD4、MD5
    产生128bit的散列值,MD就是Message Digest的缩写,目前已经不安全
    Mac终端上默认可以使用md5命令

  • SHA-1
    产生160bit的散列值,目前已经不安全

  • SHA-2
    SHA-256、SHA-384、SHA-512,散列值长度分别是256bit、384bit、512bit

  • SHA-3
    全新标准

  • 防止数据被篡改

    数字签名

  • 在数字签名技术中,有以下2种行为
    生成签名
    由消息的发送者完成,通过“签名密钥”生成

  • 验证签名
    由消息的接收者完成,通过“验证密钥”验证

  • 思考
    如何能保证这个签名是消息发送者自己签的?

  • 答案
    用消息发送者的私钥进行签名

    数字签名和公钥密码

    数字签名的过程

    数字签名的作用
  • 确认消息的完整性
  • 识别消息是否被篡改
  • 防止消息发送人否认
    数字签名无法解决的问题
  • 要正确使用签名,前提是
    用于验证签名的公钥必须属于真正的发送者

  • 如果遭遇了中间人攻击,那么
    公钥将是伪造的
    数字签名将失效

  • 所以在验证签名之前,首先得先验证公钥的合法性

  • 如何验证公钥的合法性?
    证书

证书(Certificate)

  • 证书,联想的是驾驶证、毕业证、英语四六级证等等,都是由权威机构认证的

  • 密码学中的证书,全称叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似
    里面有姓名、邮箱等个人信息,以及此人的公钥
    并由认证机构(Certificate Authority,CA)施加数字签名

  • CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织
    有国际性组织、政府设立的组织
    有通过提供认证服务来盈利的企业
    个人也可以成立认证机构

    证书的利用

    证书的注册和下载

Share